In diesem Skript wird die in 03_rolle_energyDemand geschätzte Nutzenergie über den Nutzungsgrad in Endenergie, und folglich anhad des KBOB Faktors in Primärenergie umgewandelt.

Daten einlesen

Die Daten aus dem vorhergehenden Arbeitsschritt werden eingelesen.

load("output/04_output/geom/04_rolle_bld_out.Rdata")

ng<-as.data.frame(fread(paste(dataPath,"16_kbob/nutzungsgrad.csv",sep=""),encoding="UTF-8"))
kbob<-as.data.frame(fread(paste(dataPath,"16_kbob/kbob.csv",sep=""),encoding="UTF-8"))

Verteilung Energieträger

p1<-ggplot(rolle_bld_out@data, aes(x=GENHZ_text))+
  geom_bar()+
  theme_minimal()+
  ggtitle(paste("Energie (Anzahl Gebaeude)",sep=""))+
  theme(axis.text.x = element_text(angle = 45, hjust = 1,size=14))+
  xlab("")

p2<-ggplot(rolle_bld_out@data, aes(x=GENHZ_text,y=GAREA))+
  geom_bar(stat = "identity")+
  theme_minimal()+
  ggtitle(paste("Energie (Flaechensummen Gebaeude)",sep=""))+
  theme(axis.text.x = element_text(angle = 45, hjust = 1,size=14))+
  xlab("")

p3<-ggplot(rolle_bld_out@data, aes(x=GENHZ_text,y=ebf))+
  geom_bar(stat = "identity")+
  theme_minimal()+
  ggtitle(paste("Energie (EBF-Summe Gebaeude)",sep=""))+
  theme(axis.text.x = element_text(angle = 45, hjust = 1,size=14))+
  xlab("")

p.all<-grid.arrange(p1,p2,p3,ncol=1)

p.all
## TableGrob (3 x 1) "arrange": 3 grobs
##   z     cells    name           grob
## 1 1 (1-1,1-1) arrange gtable[layout]
## 2 2 (2-2,1-1) arrange gtable[layout]
## 3 3 (3-3,1-1) arrange gtable[layout]

Gas und Heizöl domninieren als Energieträger in Rolle und MS-Rolle. Für eine nicht zu vernachlässigbare Anzahl Gebäude ist der Energieträger nicht bekannt (NA). Es handelt sich wahrscheinlich um nicht beheizte Lagerhallen (müsste überprüft werden!).

Nutzenergie zu Endenergie

Die Nutzenergie wurde im Skript 03_rolle_energyDemand berechnet. Die Nutzenergie wird anhand von Nutzungsgraden (bzw. Arbeitszahlen, im Falle von Wärmepumpen) in Endenergie transformiert. Der Nutzungsgrad von unterschiedlichen Energieträgern wird der SIA 2040 (S. 16) entnommen.

Anmerkung: ist es wirklich so, dass bei Wärmepumpen die Endenergie kleiner ist als die Nutzenergie (bzw. halb so gross)? Die Liste der Nutzungsgrade sollte vielleicht noch sorgfälltig geprüft werden. Zudem wird hier nur die Energie basierend auf der AWEL Methode (siehe Skript 03) berechnet. Sobald Details zu Stefan Schneider Methode bekannt sind, müssen auch seine Werte hier tranformiert werden.

rolle_dat<-rolle_bld_out@data
rolle_dat<-left_join(rolle_dat, ng, by = c('GENHZ_text'='energietraeger'))

#for method 1 to compute energy demand, which is borrowed from AWEL or SIA?
rolle_dat$endEnergie_awel <- rolle_dat$enerBed_awel/rolle_dat$nutzungsgrad

Endenergie zu Primärenergie

Die KBOB Faktoren stammen von diesem Link.

Anmerkung: Es sollte sorgfälltig geprüft werden, ob die Werte welche ich aus der obigen Tabelle entnommen habe so stimmen. Es sind immer die Werte für “nicht erneuerbar” und für Elektrizität wurde beispielsweise der Wert für “CH-Verbrauchermix” benützt. Ist es richtig, die KBOB Werte mit der Endenergie zu multiplizieren? Es muss auch noch der Energieträger des Migros Gebäudes bestimmt werden, im Moment sind die betreffenden Schätzungen zu gross oder nicht vorhanden.

rolle_dat<-left_join(rolle_dat, kbob, by = c('GENWW_text'='energietraeger'))

#for method 1 to compute energy demand, which is borrowed from AWEL or SIA?
rolle_dat$primaerEnergie_awel <- rolle_dat$endEnergie_awel*rolle_dat$kbob

rolle_bld_out@data<-rolle_dat

Visualisierung Energie

rolle_bld_out.wgs<-spTransform(rolle_bld_out,CRSobj = CRS("+init=epsg:4326"))

qpal_nutz <- colorBin(
  palette = "YlGnBu",
  domain = rolle_bld_out.wgs$enerBed_awel,
  bins=quantile(round(rolle_bld_out.wgs$enerBed_awel),na.rm=T,seq(0,1,length.out = 5))
)

qpal_end <- colorBin(
  palette = "YlGnBu",
  domain = rolle_bld_out.wgs$endEnergie_awel,
  bins=quantile(round(rolle_bld_out.wgs$endEnergie_awel),na.rm=T,seq(0,1,length.out = 5))
)

qpal_prim <- colorBin(
  palette = "YlGnBu",
  domain = rolle_bld_out.wgs$primaerEnergie_awel,
  bins=quantile(round(rolle_bld_out.wgs$primaerEnergie_awel),na.rm=T,seq(0,1,length.out = 5))
)


#visualisierung mit leaflet
m <- leaflet() %>%
  
  addProviderTiles(providers$Stamen.TonerLite, group = "OSM (b/w)") %>%
  addProviderTiles(providers$OpenStreetMap, group = "normal") %>%
  addProviderTiles("Esri.WorldImagery", group = "ESRI") %>%
  
  addPolygons(data=rolle_bld_out.wgs,
              stroke = TRUE,
              fillOpacity = 0.8, 
              color = ~qpal_nutz(rolle_bld_out.wgs$enerBed_awel),
              weight=1,
              popup=paste("SIA: ", rolle_bld_out.wgs$sia,
                          " / Alter: ",rolle_bld_out.wgs$GBAUJ,
                          " / EBF: ", round(rolle_bld_out.wgs$ebf),
                          " / Energietrager: ",rolle_bld_out.wgs$GENHZ_text,
                          " / Energiebedarf: ",round(rolle_bld_out.wgs$enerBed_awel)),
              group = "Energiebedarf (AWEL)")%>%
  
    addPolygons(data=rolle_bld_out.wgs,
              stroke = TRUE,
              fillOpacity = 0.8, 
              color = ~qpal_end(rolle_bld_out.wgs$endEnergie_awel),
              weight=1,
              popup=paste("SIA: ", rolle_bld_out.wgs$sia,
                          " / Alter: ",rolle_bld_out.wgs$GBAUJ,
                          " / EBF: ", round(rolle_bld_out.wgs$ebf),
                          " / Energietrager: ",rolle_bld_out.wgs$GENHZ_text,
                          " / Energiebedarf: ",round(rolle_bld_out.wgs$enerBed_awel),
                          " / Endenergie: ",round(rolle_bld_out.wgs$endEnergie_awel)),
              group = "Endenergie (AWEL)")%>%
  
      addPolygons(data=rolle_bld_out.wgs,
              stroke = TRUE,
              fillOpacity = 0.8, 
              color = ~qpal_prim(rolle_bld_out.wgs$primaerEnergie_awel),
              weight=1,
              popup=paste("SIA: ", rolle_bld_out.wgs$sia,
                          " / Alter: ",rolle_bld_out.wgs$GBAUJ,
                          " / EBF: ", round(rolle_bld_out.wgs$ebf),
                          " / Energietrager: ",rolle_bld_out.wgs$GENWW_text,
                          " / Energiebedarf: ",round(rolle_bld_out.wgs$enerBed_awel),
                          " / Endenergie: ",round(rolle_bld_out.wgs$endEnergie_awel),
                          " / Primaerenergie: ",round(rolle_bld_out.wgs$primaerEnergie_awel)),
              group = "Primaerenergie (AWEL)")%>%

  addLayersControl(
    baseGroups = c("OSM (b/w)","normal","ESRI"),
    overlayGroups = c("Energiebedarf (AWEL)", "Endenergie (AWEL)","Primaerenergie (AWEL)"),
    options = layersControlOptions(collapsed = F)
  )%>%
  addLegend(pal = qpal_nutz, values = rolle_bld_out.wgs$enerBed_awel,
    title = "Energiebedarf (kWh/a)", position = "bottomleft")%>%
  addLegend(pal = qpal_end, values = rolle_bld_out.wgs$endEnergie_awel,
    title = "Endenergie (kWh/a)", position = "bottomleft")%>%
  addLegend(pal = qpal_prim, values = rolle_bld_out.wgs$primaerEnergie_awel,
    title = "Primaerenergie (kWh/a)", position = "bottomleft")%>%
  hideGroup(c("Energiebedarf (AWEL)", "Endenergie (AWEL)"))
## Warning in qpal_nutz(rolle_bld_out.wgs$enerBed_awel): Some values were
## outside the color scale and will be treated as NA

## Warning in qpal_nutz(rolle_bld_out.wgs$enerBed_awel): Some values were
## outside the color scale and will be treated as NA
## Warning in qpal_end(rolle_bld_out.wgs$endEnergie_awel): Some values were
## outside the color scale and will be treated as NA

## Warning in qpal_end(rolle_bld_out.wgs$endEnergie_awel): Some values were
## outside the color scale and will be treated as NA
## Warning in qpal_prim(rolle_bld_out.wgs$primaerEnergie_awel): Some values
## were outside the color scale and will be treated as NA

## Warning in qpal_prim(rolle_bld_out.wgs$primaerEnergie_awel): Some values
## were outside the color scale and will be treated as NA
#leaflet karte ausführen
m

Save all Information

#html karte speichern
wd<-getwd()
htmlwidgets::saveWidget(m, file=paste(wd,"/output/05_output/map/mapPrimaerEnergie.html",sep=""),selfcontained = T)

#buildings speichern
save(rolle_bld_out,file="output/05_output/geom/05_rolle_bld_out.Rdata")